/*
 * Copyright 2013 University of Padua, Italy
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package it.dei.unipd.healthservice.resource;

/**
 * Rappresenta i dati di un recapito cliente
 * 
 * @author Nicola Salmaso
 * @version 1.00
 */
public class Recapito implements Comparable {	
	/**
	 * id del recapito
	 */
	private final Integer idrecapito;
	/**
	 * ragione sociale del recapito
	 */
	private final String ragione_sociale;
	/**
	 * Stato in cui si trova la fabbrica
	 */
	private final String stato;
	/**
	 * Provincia in cui si trova la fabbrica
	 */
	private final String provincia;
	/**
	 * Indirizzo della fabbrica
	 */
	private final String indirizzo;
	/**
	 * CittÃ  in cui si trova la fabbrica
	 */
	private final String citta;
	/**
	 * CAP
	 */
	private final String cap;
	/**
	 * 
	 * @param idrecapito
	 * id del recapito a cui inviare l'ordine
	 * @param ragione_sociale
	 * ragione sociale del cliente che ha effettuato l'ordine
	 * @param stato
	 * stato del recapito del cliente
	 * @param provincia
	 * provincia del recapito del cliente
	 * @param citta
	 * citta del recapito del cliente
	 * @param indirizzo
	 * indirizzo del recapito del cliente
	 * @param cap
	 * cap del recapito del cliente
	 */
	public Recapito(Integer idrecapito, String ragione_sociale, String stato, String provincia, String citta, String indirizzo, String cap){
		this.idrecapito = idrecapito;
		this.ragione_sociale = ragione_sociale;
		this.stato = stato;
		this.provincia = provincia;
		this.indirizzo = indirizzo;
		this.citta = citta;
		this.cap = cap;
	}
	/**
	 * 
	 * @param ragione_sociale
	 * ragione sociale del cliente che ha effettuato l'ordine
	 * @param stato
	 * stato del recapito del cliente
	 * @param provincia
	 * provincia del recapito del cliente
	 * @param citta
	 * citta del recapito del cliente
	 * @param indirizzo
	 * indirizzo del recapito del cliente
	 * @param cap
	 * cap del recapito del cliente
	 */
	public Recapito(String ragione_sociale, String stato, String provincia, String citta, String indirizzo, String cap){
		this(0,ragione_sociale,stato,provincia,indirizzo,citta,cap);
	}


	/**
	 * @return id del recapito
	 */
	public Integer getIdrecapito() {
		return idrecapito;
	}


	/**
	 * @return ragione sociale del cliente
	 */
	public String getRagsociale() {
		return ragione_sociale;
	}


	/**
	 * @return stato del recapito del cliente
	 */
	public String getStato() {
		return stato;
	}


	/**
	 * @return provincia del recapito del cliente
	 */
	public String getProvincia() {
		return provincia;
	}


	/**
	 * @return indirizzo del recapito del cliente
	 */
	public String getIndirizzo() {
		return indirizzo;
	}


	/**
	 * @return citta del recapito del cliente
	 */
	public String getCitta() {
		return citta;
	}


	/**
	 * @return cap del recapito del cliente
	 */
	public String getCap() {
		return cap;
	}
	
	public int compareTo(Object obj)
	{
		Recapito recapito = (Recapito)obj;
		if( (recapito.getCap().equals(cap)) && (recapito.getCitta().equals(citta)) && 
			(recapito.getIndirizzo().equals(indirizzo)) && (recapito.getStato().equals(stato)) &&
			(recapito.getRagsociale().equals(ragione_sociale)))
			return 0;
		return -1;
	}
	

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return  ragione_sociale	+ " - " + stato + " - " + provincia
				+ " - " + indirizzo + " - " + citta + "- " + cap ;
	}
	
}